from sqlalchemy import JSON, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
import json
from wisdom.config import Config
from typing import Generator

SQLALCHEMY_DATABASE_URL = Config.get_db_url()

engine = create_engine(SQLALCHEMY_DATABASE_URL)

SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

# 定义基类
Base = declarative_base()

def create_tables(engine=engine):
    Base.metadata.create_all(engine)


def get_db():
    """
    # 使用get_db()函数获取数据库会话  
    with get_db() as db:  
        # 在这里执行数据库操作，例如查询、添加、更新或删除记录  
        # 例如，假设你有一个名为MyModel的模型，并且你想查询所有记录  
        results = db.query(MyModel).all()  # 假设MyModel是你的一个SQLAlchemy模型  
        for result in results:  
            print(result)  # 处理或打印查询结果  
    
    # 当with块结束时，db.close()将被自动调用，释放数据库连接资源
    """
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()